<html>
<head><meta charset="utf-8"><title>IRCE · t-compiler/wg-llvm · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/index.html">t-compiler/wg-llvm</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/IRCE.html">IRCE</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="167074484"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/IRCE/near/167074484" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nikita Popov <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/IRCE.html#167074484">(Jun 01 2019 at 14:22)</a>:</h4>
<p>I've talked with Philip Reames, who's working on an LLVM based Java runtime, so they have some of the same problems as Rust does wrt array bounds checks... He pointed out that they contributed an inductive range check elimination pass (<a href="https://github.com/llvm-mirror/llvm/blob/master/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp" target="_blank" title="https://github.com/llvm-mirror/llvm/blob/master/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp">https://github.com/llvm-mirror/llvm/blob/master/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp</a>) that may be of interest to us. This pass isn't part of the default pipeline.</p>



<a name="167074691"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187780-t-compiler/wg-llvm/topic/IRCE/near/167074691" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nikita Popov <a href="https://rust-lang.github.io/zulip_archive/stream/187780-t-compiler/wg-llvm/topic/IRCE.html#167074691">(Jun 01 2019 at 14:28)</a>:</h4>
<p>The other pass he mentioned in LoopPredication, but that's not directly applicable for our purposes, as it relies on deoptimization.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>